package com.david.reader.activity

import android.content.Intent
import android.net.Uri
import android.os.Environment
import android.view.Gravity
import android.widget.FrameLayout
import android.widget.TextView
import android.widget.Toast
import androidx.core.content.res.ResourcesCompat
import com.david.core.utils.DpUtils
import com.david.core.utils.ToastUtils
import com.david.reader.R
import com.david.reader.bean.BookBean
import com.david.reader.utils.BookHelper
import com.david.reader.utils.FileUtil
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext

/**
 * 书籍移动至docuemnts文件夹中自动会显示在列表中
 */
class SystemPdfReaderActivity:PdfReaderActivity() {
    override fun initData() {
        intent?.apply {
            data?.let {
                name = data.toString().substring(data.toString().lastIndexOf("/") + 1)


//                addButton(data!!)

                setPdfConfig(pdfView.fromUri(data))

                ToastUtils.instance.toast("喜欢就移至documents文件夹中吧")
//                pdfView.fromUri(data)
//                    .onPageChange(this@SystemPdfReaderActivity)
//                    .defaultPage(0)
//                    .spacing(5)
//                    .defaultPage(MMKVUtil.getInt(  "${id}_page", 0))
//                    .fitEachPage(false)
//                    .load()

            }
        }
    }

    /**
     * 添加加入书架按钮
     */
//    private fun addButton(fileUri: Uri) {
//        val text = TextView(this)
//        text.text = "加入书架"
//
//        findViewById<FrameLayout>(android.R.id.content).addView(text)
//        (text.layoutParams as FrameLayout.LayoutParams).apply {
//
//            gravity = Gravity.END
//            rightMargin = DpUtils.dp2Px(applicationContext, 20)
//            marginEnd = DpUtils.dp2Px(applicationContext, 20)
//            topMargin = DpUtils.dp2Px(applicationContext, 20f)
//
//            width = FrameLayout.LayoutParams.WRAP_CONTENT
//            height = FrameLayout.LayoutParams.WRAP_CONTENT
//        }
//
//        text.background = ResourcesCompat.getDrawable(resources, R.drawable.selector_btn_add_shell, null)
//
//        text.setPadding(DpUtils.dp2Px(applicationContext, 15), DpUtils.dp2Px(applicationContext, 5), DpUtils.dp2Px(applicationContext, 15), DpUtils.dp2Px(applicationContext, 5))
//
//
//
//        val fileName = FileUtil.getUriName(fileUri)//fileUri.toString().substring(fileUri.toString().lastIndexOf("/") + 1)
//        val filePath = getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS)?.absolutePath + "/" + fileName
//        if (!BookHelper.instance.isBookListInit()) {
//            CoroutineScope(Dispatchers.IO).launch{
//                BookHelper.instance.loadList()
//                val hasItem = BookHelper.instance.hasItem(fileName, filePath, 1)
//                withContext(Dispatchers.Main){
//                    setBtnListener(text, fileUri, hasItem)
//                }
//            }
//        } else {
//            val hasItem = BookHelper.instance.hasItem(fileName, filePath, 1)
//            setBtnListener(text, fileUri, hasItem)
//        }
//    }
//
//    private fun setBtnListener(btn: TextView, fileUri: Uri, hasItem:Boolean){
//        if (!hasItem) {
//            btn.setOnClickListener {//目前先使用preference，后期可改为mmkv
//                FileUtil.copyFileToCache(applicationContext, fileUri)
//
//                val id = System.currentTimeMillis().toString()
//
//                val name = FileUtil.getUriName(fileUri)
//                val absolutePath = this.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS)?.absolutePath + "/" + name
//
//                BookHelper.instance.addItem(0, BookBean(name, absolutePath, 1, id))
//
//                Toast.makeText(this, "添加成功", Toast.LENGTH_LONG).show()
//
//                setNavBack(btn)
//            }
//        } else {
//            setNavBack(btn)
//        }
//    }
//
//    private fun setNavBack(btn: TextView){
//        btn.text = "返回列表"
//        btn.setOnClickListener {
//            startActivity(Intent(this, BookShellActivity::class.java))
//            finish()
//        }
//    }
}